package com.itheima.bigevent.controller;

import com.itheima.bigevent.pojo.Result;
import com.itheima.bigevent.utils.AliOssUtil;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.UUID;

/**
 * ClassName: FileUploadController
 * Package: com.itheima.bigevent.controller
 * Description:文件上传
 *
 * @Author: Zhang Peiyuan
 * @Create: 2024-08-20-21:51
 * @Version: v1.0
 */
@RestController
public class FileUploadController {
    /**
     * 文件上传,
     * @param file
     * @return
     * @throws IOException
     */
    @PostMapping("/upload")
    public Result<String> upload(MultipartFile file) throws IOException {
        // 获得原始文件名
        String originalFilename = file.getOriginalFilename();
        // 保证文件名唯一, 以免文件覆盖
        // uuid + 文件后缀名
        // uuid: 全称为Universally Unique Identifier，通常翻译为通用唯一识别码或全局唯一标识符
        // 会生成一个全局唯一的字符串
        String fileName = UUID.randomUUID().toString() + originalFilename.substring(originalFilename.lastIndexOf("."));
        // 上传文件
        String url = AliOssUtil.uploadFile(fileName, file.getInputStream());
        // 返回图像在阿里云上的存储地址
        return Result.success(url);
    }
}
